package com.duguo.dynamicmvc.model.statusmessage;

import com.duguo.dynamicmvc.model.ModelImpl;

public class StatusMessageSupportModelImpl extends ModelImpl implements StatusMessageModel {

	public static final String STATUS_MESSAGE_KEY="statusMessage";
	
    private StatusMessage statusMessage;
    
	@SuppressWarnings("unchecked")
	public void addStatusMessage(StatusMessage statusMessage) {
		if(this.statusMessage==null){
			this.statusMessage=statusMessage;
			super.put(STATUS_MESSAGE_KEY,this.statusMessage);
		}else if(this.statusMessage instanceof ChainedStatusMessage){
			((ChainedStatusMessage)(this.statusMessage)).addMessage(statusMessage);
		}else{
			this.statusMessage=new ChainedStatusMessage(this.statusMessage,statusMessage);
			super.put(STATUS_MESSAGE_KEY,this.statusMessage);
		}
	}
	
	public void setStatusMessage(StatusMessage statusMessage) {
		if(statusMessage!=null){
			this.statusMessage=statusMessage;
			super.put(STATUS_MESSAGE_KEY,this.statusMessage);
		}
	}

	public void clearStatusMessage(){
		if(statusMessage!=null){
			statusMessage=null;
			super.remove(STATUS_MESSAGE_KEY);
		}
	}
	
	public StatusMessage getStatusMessage() {
		return statusMessage;
	}
    
}
